uniform float height;         // valores mas o menos entre 0.01 y 0.0001
uniform sampler2D TexDiffuse; // color de la particula
uniform sampler2D TexAlpha;   // alpha de la particula (usar canal R)
uniform sampler2D TexHeight;  // altura de la particula (usar canal R)

varying vec2 uv;

void main(void)
   {
   vec4 c = texture2D(TexDiffuse, uv); 
   c.w = texture2D(TexAlpha, uv).x;
   float f = texture2D(TexHeight, uv).x * h;
      
   gl_FragDepth = gl_FragCoord.z + f;
   gl_FragColor = c;
   }